package com.yuexun.dhdoctor.module.meetingNew.model;

import com.yuexun.dhdoctor.base.BaseEntity;
import com.yuexun.dhdoctor.base.bean.model.HelpFileEntity;
import com.yuexun.dhdoctor.module.meetingNew.bean.MeetingNewDateBean;
import com.yuexun.dhdoctor.module.meetingNew.bean.MeetingNewQrCodeBean;
import com.yuexun.dhdoctor.module.meetingNew.bean.MeetingNewRoleBean;
import com.yuexun.dhdoctor.module.meetingNew.bean.MeetingNewRoomBean;
import com.yuexun.dhdoctor.module.meetingNew.bean.MeetingNewRoomBeanNew;
import com.yuexun.dhdoctor.module.meetingNew.bean.MeetingNewSignBean;
import com.yuexun.dhdoctor.module.meetingNew.bean.MeetingNewTypeBean;
import com.yuexun.dhdoctor.module.meetingNew.bean.MeetingRoomBean;

import java.util.Map;

import rx.Observable;

/**
 * Created by work-jx on 2016/11/15.
 */
public interface IMeetingNewModel {

    //会议列表
    public Observable<BaseEntity<MeetingNewDateBean>> getMeetingList(Map<String, String> praise);

    //签到记录
    public Observable<BaseEntity<MeetingNewSignBean>> getMeetingSign(Map<String, String> praise);

    //会议可见性列表
    Observable<BaseEntity<MeetingNewRoleBean>> getRoleList(Map<String, String> praise);

    //发起会议
    Observable<BaseEntity<String>> createMeeting(String[] participantIds,
                                                 String[] readyIds,
                                                 String[] deptIdList, String[] deptSignCountList,
                                                 String[] groupIdList, String[] groupSignCountList,
                                                 Map<String, String> praise);

    //修改会议
    Observable<BaseEntity<String>> updateMeeting(String[] participantIds,
                                                 String[] readyIds,
                                                 String[] deptIdList, String[] deptSignCountList,
                                                 Map<String, String> praise);

    //更新会议状态
    Observable<BaseEntity<String>> updateStatus(Map<String, String> praise);

    //会议室状态列表
    Observable<BaseEntity<String>> getRoomStatusList(Map<String, String> praise);

    //（可用）会议地点列表
    Observable<BaseEntity<MeetingNewRoomBean>> getRoomList(Map<String, String> praise);

    //（可用）会议地点列表
    Observable<BaseEntity<MeetingNewRoomBeanNew>> getRoomList2(Map<String, String> praise);

    //（全部）会议地点列表
    Observable<BaseEntity<MeetingNewRoomBean>> getAllRoomList(Map<String, String> praise);

    //判断会议人员是否冲突
    Observable<BaseEntity<String>> getJudgeMember(String[] participantIds, Map<String, String> praise);

    //请求动态二维码
    Observable<BaseEntity<MeetingNewQrCodeBean>> getQrCode(Map<String, String> praise);

    //动态二维码签到
    Observable<BaseEntity<String>> checkMeetingByQrCode(Map<String, String> praise);

    //会议类型列表
    Observable<BaseEntity<MeetingNewTypeBean>> getTypeList(Map<String, String> praise);

    //会议类型详情
    Observable<BaseEntity<HelpFileEntity>> getTypeDetail(Map<String, String> praise);

    //会议室详情
    Observable<BaseEntity<MeetingRoomBean>> getRoomDetail(Map<String, String> praise);

    //未读会议列表
    Observable<BaseEntity<MeetingNewDateBean>> getMeetingUnReadList(Map<String, String> praise);

    //创建缺勤
    Observable<BaseEntity<String>> createMeetingAbsence(Map<String, String> praise);

    //更新缺勤
    Observable<BaseEntity<String>> updateMeetingAbsence(Map<String, String> praise);
}
